public class Rob {
    public int rob(int[] nums) {
        return dp(nums,0);
    }
    /*robber函数表示从第 start 间房子开始抢的最大金额*/
    int dp(int[] nums,int start){
        /*如果这排房子从头到尾都挑完了还没开始抢，那就什么也抢不到*/
        //base case
        if(start > nums.length){
            return 0;
        }
        /*在每个房子门前有两种选择，抢 / 不抢*/
        int res = Math.max(nums[start] + dp(nums,start+2)
                , dp(nums,start+1));
        return res;
    }
}
